home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / PLUS4 / plus4disk2.d64 / ch8.08 squares < prev    next >
Text File  |  2009-01-03  |  6KB  |  76 lines

  1. Ç*NB"1:CH8.08  SQUARES"
  2. Ç*SP0:LM8:RM62:PL66:PG59
  3. Ç*VP3:HL8:HR72:HD0:├16/+4: ╙╤╒┴╥┼╙                     ,,╙ECTION XX
  4. Ç*HS2:------------------------------------,,----------
  5. Ç*FT0:-----------------------,,----------
  6. Ç*FS3:(C) 1984 ┼LIZABETH ─EAL,,         Ç#
  7. ╙ECTION
  8. Ç*LN2:CN1;╙╤╒┴╥┼╙Ç*LN2:CN0
  9.      ╘HE PURPOSE OF THIS GAME IS TO CROSS OVER TO THE OPPOSITE SIDE BEFORE YOUR OPPONENT DOES. ╨LAYER ONE OWNS SQUARES NUMBERED 1 TO 4. ╘HEY ARE TO BE TRANSPORTED FROM THE BOTTOM OF THE BOARD TO THE TOP OF THE SCREEN. ╨LAYER TWO HAS SQUARES NUMBERED 5 TO 8. ╘HEY ARE TO BE MOVED FROM THE RIGHT SIDE WESTWARD, TO THE LEFT EDGE OF THE SCREEN. ╨LAYER ONE CAN ONLY MOVE UP OR SIDEWAYS. ╨LAYER TWO CAN ONLY MOVE LEFT OR UP AND DOWN. ┬UMPING INTO ANOTHER SQUARE ISN'T PERMITTED. ╚ERE IS AN ILLUSTRATION OF A TYPICAL BOARD, EARLY IN THE GAME:
  10.  
  11. // PIC: SQUARES //
  12.  
  13.      ╘HIS GAME APPEARED IN THE ╙├╔┼╬╘╔╞╔├ ┴═┼╥╔├┴╬ LONG AGO. ╔T IS A GOOD STRATEGY GAME, FAIRLY DIFFICULT ON A 5 X 5 BOARD. ╘HE COMPUTER'S FUNCTION IS TO BE A WATCHDOG: THE COMPUTER PRESENTS THE BOARD AND CHECKS ALL THE MOVES FOR LEGALITY. ╘HE COMPUTER PROMPTS THE USERS ON THE TOP TWO LINES OF THE SCREEN.
  14.  
  15. // PRG: SQUARES //
  16.  
  17. Ç*FP13
  18. ***  ╟┴═┼ ╠╧╟╔├ ╓┴╥╔┴┬╠┼╙: LINES 110-7060  ***
  19.  
  20. ╨    PLAYER NUMBER
  21. ╨1,╨2 RANGE OF PLAYER'S SQUARES
  22. ╬┬() FLAGS NOT-BLOCKED POSITIONS
  23. ╬┬   COUNTS ABOVE
  24. ╙╤() NAMES OF THE  SQUARES (┴,┬, ETC)
  25. ┴╬$  AVAILABLE NUMBERS (1-4, 5-8)
  26. ╧╦   FLAGS BEING ON THE EDGE, ╧╦ TO VANISH
  27. ┼╞   FLAGS END OF GAME
  28. ├╓() TABLE OF LEGAL MOVES
  29. ┌╓   SHOWS OFF-THE BOARD ROW (PLAYER 1) OR
  30.      COLUMN (PLAYER 2)
  31.  
  32. Ç*FP11
  33. ***  ╟╥┴╨╚╔├ ╓┴╥╔┴┬╠┼╙: LINES 8000 UP  ***
  34.  
  35. ╚$, ╠1$,╠2$ USED FOR POSITIONING THE DRAWING
  36.      OR THE INPUT PROMPTS
  37. ┬$   USED FOR BLANKING A SCREEN LINE
  38. ╥1,├1 INITIAL BOARD POSITION
  39. ╥$   IS SPACES FOR POSITIONING THE BOARD
  40. ┴$   WORKING VARIABLE FOR READING AND
  41.      PRINTING THE BOARD
  42. ├╓() ORIGINAL BOARD LETTERS, WITH PLAYER'S
  43.      NUMBERS SUPERIMPOSED AS NEEDED
  44.  
  45. ***  ╔╬╙╘╥╒├╘╔╧╬╙  ***
  46.  
  47.      ╘YPE ╚╧═┼ AND 20 CURSOR-DOWN IN ╚$ IN LINE 8000. ╔N THE SAME LINE, ╠1$ CONTAINS ╚╧═┼ AND TWO DOWN, ╠2$ CONTAINS ╚╧═┼ AND THREE DOWN. ┬$ IS EXACTLY 39 SPACES LONG.
  48.  
  49.      ╬OW, THE BOARD. ╞OUR PIECES THAT MAKE UP THE BOARD ARE IN ─┴╘┴ LINES. ╨ROGRAM LINES 8040-8050 PRINT THE WHOLE THING SO THAT IT LOOKS AS IN THE ILLUSTRATION ABOVE. ─┴╘┴ LINES NEED ONLY PIECES. ╫HAT YOU TYPE IS NOT IMPORTANT TO THE FUNCTIONING OF A PROGRAM, BUT HERE IS THE LIST OF KEYS THAT WERE USED: ╙HIFTED + - ╒ ╔ ╩ ╦ AND ├OMMODORE-LOGO ╥ ┼ ╤ ╫. ┘OU CAN DESIGN YOUR OWN THING IF YOU WISH, SO LONG AS THERE ARE ONE COLUMN WIDE GAPS BETWEEN ALL LETTERS IN BOTH THE HORIZONTAL AND VERTICAL DIRECTION.
  50.  
  51.      ╥╒╬ THE PROGRAM. ╘HE COMPUTER PROMPTS YOU AT THE TOP OF THE SCREEN. ╘HE FIRST LINE IS IMPORTANT TO WATCH. ╘HE SECOND ONE IS ONLY USEFUL WHILE YOU ARE LEARNING THE GAME - IT REMINDS YOU WHICH ARE THE LEGAL MOVES. ┘OU CAN IGNORE THIS LINE ONCE YOU KNOW THE RULES.
  52.  
  53.      ╘O PLAY, FIRST SELECT THE NUMBER OF THE SQUARE YOU WISH MOVED, THEN PRESS THE LETTER OF THE DESTINATION FOR THAT MOVE. ╧NE EXCEPTION: WHEN YOU'RE READY TO GO OFF THE BOARD, TYPE ┌. ┘OU'LL VANISH AT THAT POINT. ╘HE WINNER IS DECLARED AS SOON AS ONLY ONE SQUARE REMAINS ON THE BOARD.
  54.  
  55. ***  ─┼╘┴╔╠╙  ***
  56.  
  57.      ╘HERE ARE SEVERAL ╥┼═ARK LINES IN THE PROGRAM TO SHOW WHAT THE VARIOUS SECTIONS DO. ╘HE LOGIC IS THIS: ALL THE LETTER CELLS AND THE NUMBER-SQUARES ARE SET UP IN LINES 8030-8120. ┴LL THE AVAILABLE SQUARES AND POSITIONS ARE SQUIRRELED AWAY IN VARIABLES, AS THEY WILL BE NEEDED ALL ALONG: IMAGINE A SQUARE MOVING FROM ┼ TO ─. ┴S SOON AS ┼ IS VACATED BY NUMBER 5, A LETTER ┼ MUST REAPPEAR THERE, AND SO ON FOR ALL THE POSITIONS.
  58.  
  59.      ╫HEN A SQUARE IS TAKEN OFF THE BOARD, IT HAS TO BE REMOVED FROM THE LIST. ╫HEN A SQUARE IS TO MOVE, WE LOOK AROUND FOR LEGAL MOVES (3 AT MOST) OF WHICH SOME MAY BE ILLEGAL EDGES, OTHER SQUARES, OR BLOCKED SQUARES. ┴╬$ STRING KEEPS TRACK OF WHAT IS OR ISN'T LEGAL AT THE MOMENT.
  60.  
  61.      ╘HERE IS ONE TRICKY PART IN THE CODING. ├╚╥$(0) IS USED TO TEST POSITIONS OFF-THE-BOARD, AS WELL AS "CROSSING OFF" THE AVAILABLE SQUARE FROM THE LIST. ╔T'S CONVENIENT, IT DOESN'T PRINT, AND WE CAN TEST FOR ZERO. ╞OR AN EXAMPLE SEE LINES 210 AND 7050.
  62.  
  63.      ╘HE PLAY LOOP IS IN LINES 120-230, WITH SEVERAL SUBROUTINES IN LINES 5000-7060. ╘HE SUBROUTINES GET THE KEYBOARD INPUT (5000), CALCULATE IF A SQUARE MAY MOVE OFF THE BOARD (6000), LOOK AT THE SURROUNDINGS OF THE INTENDED MOVE (7000).
  64.  
  65.      ╘HE MAIN LOOP PROMPTS THE USER ABOUT HIS/HER SQUARE NUMBERS (140-160). ╘HE USER THEN PICKS ONE OF THOSE (170) AND IF THE INPUT IS NOT LEGAL WE GO BACK TO LINE 140. ╔F IT IS LEGAL, WE GET THE SECOND PROMPT, THE DESTINATION SQUARE. ╘HE  USER'S INPUT IS TAKEN AND EXAMINED (200) AND IF NOT LEGAL, WE LOOP BACK TO LINE 200 AGAIN. ╔F LEGAL, WE MAY HAVE A "┌" CONDITION (GOING OFF THE BOARD) IN WHICH CASE WE SUBTRACT ONE FROM THE NUMBER OF PIECES AND REMOVE IT FROM THE LIST (210).
  66.  
  67.      ╘HE MOVE IS PRINTED, THE SQUARE IS REPLACED WITH A LETTER AND IF THERE ARE NO MORE TO DO, WE DECLARE A WINNER (240), OTHERWISE WE RECALCULATE THE POSITION FOR THE LATEST SQUARE AND LOOP BACK TO THE NEXT PLAYER.
  68.  
  69.      ╔F AT ANY TIME THE PLAYER'S CHOSEN SQUARE IS BLOCKED, THE GAME MOVES TO THE NEXT PLAYER, WHETHER HE HAS OTHER OPTIONS (LOOPBACK IN LINE 160) OR NOT (LOOPBACK, LINE 190). ╞AIR ENOUGH?
  70.  
  71. ***  ╨╥╧╩┼├╘╙  ***
  72.  
  73.      ╘HOSE WHO THINK IT'S UNFAIR CAN RECODE, SO THAT THE PLAYERS CHANGE ONLY IF ALL THE SQUARES BELONGING TO ONE PLAYER ARE IMMOBILIZED BY A BLOCKADE. ┬UT IF THE PLAYER CAN POSSIBLY MOVE ANOTHER SQUARE, THE COMPUTER WILL DO THE NECESSARY HAND-HOLDING AND TELL THE PLAYER TO, ╨╠┼┴╙┼, TRY ANOTHER SQUARE.
  74.  
  75.      ┴LMOST ALL THE CODING NECESSARY FOR THE COMPUTER TO BE ONE OF THE PLAYERS IS IN PLACE. ╘HE ONLY NEW CODE REQUIRED IS STRATEGY. ╔NCLUDING THE STRATEGY IS NO TRIVIAL TASK, ENJOY THE CHALLENGE!
  76.